function [p q] = TimeDiscretizers(dt,option)
% Following Algorithms are implemented in the current study
% 1. Fully Implicit Theta Scheme
% 2. Fully Implicit BDF Two parameter Scheme
% 3. Explicit Leap Frog Scheme
% 4. Semi Implicit BDF - By adjusting parameters = Semi Implicit
% Trapezoidal
% 5. Semi Implicit Trapezoidal with Upwinding Discretization
% 6. Semi Implicit Trapezoidal with Central Discretization
% 7. Fully Implicit with Upwinding
global U  h  g p q nt dx x p_global tmax L steps itermax;

%Reinitialize the variables
pi1=1;
qi=1;

for i=1:x
   q(i,1) = qi;
end

for i=1:x-1
    p(i,1) = pi1*cos(4*pi*(i-1)*dx/L);
end

nt = round(tmax/dt);   % number of time steps
xplot=1:x-1;
%h1 = plot(xplot,p,'yDataSource','p');

if (option ==1)
    disp('1. Fully Implicit Theta Scheme\n');
    beta=0.5;
    [p q] = implicit_theta(dt,beta);
    
elseif (option==2)
    disp('2. Fully Implicit BDF Two parameter Scheme \n');
    [p q] = BDF2(dt);
    
elseif (option ==3)
    disp('3. Explicit Leap Frog \n');
    [p q] = leapfrog(dt);
elseif (option==4)
    display(' Semi Implicit Scheme BDF ');
    beta = input('Enter the value of theta:\n');
    alpha = input('Enter the value of  alpha\n');
    [p q] = SemiImplicit_BDF(alpha,beta);
    
elseif (option ==5)
    display(' Semi Implicit Scheme Trapezoidal with upwinding Discretization ');
    [p q] = SemiImplicit_Trapezoidal_Upwinding(dt);
    
elseif (option ==6)
    display(' Semi Implicit Scheme Trapezoidal ');
    [p q] = SemiImplicit_Trapezoidal(dt);
elseif (option ==7)
    display(' Implicit Scheme  Two Parameter Model, Upwinding');
    [p q] = BDF2_Upwinding(dt);   
    
end




